1. Field of the Invention
The present invention relates to the field of printing and in particular, to systems and methods to manage resources in page description languages.
2. Description of Related Art
Document processing software allows users to view, edit, process, and store documents conveniently. Pages in a document may be displayed on screen exactly as they would appear in print. However, before the document can be printed, pages in the document are often described in a page description language (“PDL”). As used in this application PDLs may include PostScript, Adobe PDF, HP PCL, Microsoft XPS, and variants thereof as well as any other languages used to describe pages in a document. A PDL description of a document provides a high-level description of each page in a document. This PDL description is often translated to a series of lower-level printer-specific commands when the document is being printed. The translation process from PDL to lower-level printer-specific commands may be complex and depend on the features and capabilities offered by a particular printer. The process of translation from a PDL description of a document to a lower-level description that may be used to place marks on a print medium is termed rasterization.
In one aspect, print jobs may be thought of as being of two broad types. In the first type, termed non-variable-data print jobs, code for text elements and graphic elements on a page may be sent to the printer and rasterized by the printer once. The printer can then print as many copies as specified. In non-variable data print jobs, rasterization occurs once even when many copies are printed because each copy is identical.
In the second type, termed variable-data print jobs, code for text and graphic elements on a page may be sent to the printer each time that a customized version of that page is printed. Rasterization may need to occur for each copy printed because the copies may be non-identical because of customization even though the content of large sections of each copy may overlap. Thus, variable data print jobs can take substantially longer to print.
PDL's include a class of languages governed by the Personal Printer Markup Language (“PPML”) specification, which permits printer languages to identify, store, and re-use text and graphic elements. A PPML-compliant language can speed up the printing of variable data print jobs by permitting the storage and re-use of text and graphic elements thus reducing rasterization and bandwidth overheads. PPML-compliant languages allow printers to manipulate data components at the object level instead of at the page level. In other words, by lowering the granularity of the information stored by a printer to the object-level, PPML-compliant languages allow code to attach names to objects and re-use the objects as needed during the process of printing a variable-data job. Re-useable objects are also often called resources in PPML.
Historically, as PDLs emerged over time, various and disparate techniques evolved to handle similar objects in different PDLs. For example, a printer may employ one technique to optimize reused objects in one PDL and a different technique to handle reused objects in a different PDL. Thus, there is a need for more general-purpose schemes to efficiently process PDL descriptions of documents to printer-specific commands and eliminate the complexities associated with traditional PDL processing.